package com.ecoolex.cms.system.ws;

import java.util.List;

import com.ecoolex.cms.system.entity.SunrisedutyfreeApplication;
import com.ecoolex.cms.system.entity.VRNaviPath;
import com.ecoolex.cms.system.entity.VRScene;
import com.ecoolex.cms.system.entity.VRSceneHotspot;
import com.ecoolex.cms.system.entity.VRSceneHotspotParam;
import com.ecoolex.cms.system.pojo.CouponDTO;
import com.ecoolex.cms.system.pojo.TokenDTO;
import com.ecoolex.cms.system.ws.contract.IgnitionRequestType;
import com.ecoolex.cms.system.ws.contract.IgnitionResponseType;
import com.ecoolex.framework.common.pojo.BizResult;
import com.ecoolex.framework.common.pojo.Page;
import com.ecoolex.framework.common.pojo.Pagination;

public interface CmsSystemService {

	IgnitionResponseType ignition(IgnitionRequestType request);

	Pagination<VRScene> queryVRScene(Integer userId, String name, Integer[] status, Page page);

	VRScene getVRSceneById(Integer userId, Integer sceneId);

	VRScene addVRScene(VRScene record, String createUser);

	VRScene editVRScene(VRScene record, String updateUser);

	Boolean deleteVRScene(VRScene record, String updateUser);

	Boolean online(Integer userId, Integer sceneId, String updateUser);

	Boolean offline(Integer userId, Integer sceneId, String updateUser);

	Pagination<VRSceneHotspot> queryVRSceneHotspot(Integer sceneId, String hotspotName, Page page);

	List<VRSceneHotspot> queryVRSceneHotspotBySceneId(Integer sceneId);

	VRSceneHotspot getVRSceneHotspotById(Integer hotspotId);

	Boolean deleteVRSceneHotspotById(Integer hotspotId, String updateUser);

	VRSceneHotspot addVRSceneHotspot(VRSceneHotspot record, List<VRSceneHotspotParam> paramList, String createUser);

	VRSceneHotspot editVRSceneHotspot(VRSceneHotspot record, List<VRSceneHotspotParam> paramList, String updateUser);

	List<VRSceneHotspotParam> queryVRSceneHotspotParamByHotspot(Integer hotspotId);

	Boolean updateVRNaviPath(VRScene scene, List<VRNaviPath> list, String updateUser);

	Long countVRNaviPathByBySceneId(Integer sceneId);

	List<VRNaviPath> queryVRNaviPathBySceneId(Integer sceneId);

	VRScene getVRSceneByOpenId(String openId);

	SunrisedutyfreeApplication getSunrisedutyfreeApplicationByAppidAndSecret(String appId, String secret);

	TokenDTO createToken(SunrisedutyfreeApplication application);

	SunrisedutyfreeApplication getSunrisedutyfreeApplicationByToken(String token);

	BizResult<CouponDTO> getCouponDTOBarcode(String token);

}
